package com.kk.floatlibrary.util;

import android.content.Context;

import android.util.DisplayMetrics;

import android.view.WindowManager;

/**
 * Created by zk on 2020/9/15
 */
//获得屏幕相关的辅助类
public class ScreenUtils {
    private ScreenUtils() {
        /* cannot be instantiated */
        throw new UnsupportedOperationException("cannot be instantiated");
    }

    /**
     * 获得屏幕高度
     *
     * @param context
     * @return
     */
    public static int getScreenWidth(Context context) {
        WindowManager wm = (WindowManager) context
                .getSystemService(Context.WINDOW_SERVICE);
        DisplayMetrics outMetrics = new DisplayMetrics();
        wm.getDefaultDisplay().getMetrics(outMetrics);
        return outMetrics.widthPixels;
    }

    /**
     * 获得屏幕宽度
     *
     * @param context
     * @return
     */
    public static int getScreenHeight(Context context) {
        WindowManager wm = (WindowManager) context
                .getSystemService(Context.WINDOW_SERVICE);
        DisplayMetrics outMetrics = new DisplayMetrics();
        wm.getDefaultDisplay().getMetrics(outMetrics);
        return outMetrics.heightPixels;
    }

    /**
     * 获得状态栏的高度
     *
     * @param context
     * @return
     */
    public static int getStatusHeight(Context context) {

        int statusHeight = -1;
        try {
            Class<?> clazz = Class.forName("com.android.internal.R$dimen");
            Object object = clazz.newInstance();
            int height = Integer.parseInt(clazz.getField("status_bar_height")
                    .get(object).toString());
            statusHeight = context.getResources().getDimensionPixelSize(height);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return statusHeight;
    }

    /**
     * 获取ActionBar高度
     *
     * @param content
     * @return
     */
    public static int getActionBarHight(Context content) {
        //TODO Bug 隐藏ActionBar时高度不为0
//        TypedValue tv = new TypedValue();
//        if (content.getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true)) {
//            return TypedValue.complexToDimensionPixelSize(
//                    tv.data, Resources.getSystem().getDisplayMetrics()
//            );
//        }
        return 0;
    }
}
